package com.bjpowernode.rbac.service;

import com.bjpowernode.rbac.entity.Customer;
import com.bjpowernode.rbac.query.CustomerQuery;
import com.bjpowernode.rbac.query.EchartsQuery;
import com.github.pagehelper.PageInfo;

import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author jy
 * @version 1.0
 * @date 2022/2/11 9:10
 */
public interface CustomerService {


    PageInfo<Customer> selectCustomerByCondition(CustomerQuery customerQuery);

    PageInfo<Customer> selectCustomerStatusByCondition(CustomerQuery customerQuery);

    void saveOrUpdate(Customer customer, Long inputTime);

    Map<String, Object> countCustomerMake(Integer groupType,String keyword,String dateBegin,String dateEnd);

    Map<String, Object> countCustomerMake02(Integer groupType,String keyword,String dateBegin,String dateEnd);

    PageInfo<EchartsQuery> getEchartsQueryList(CustomerQuery customerQuery,String customerName,String dateBegin,String dateEnd);

    PageInfo<Customer> selectPotentialCustomerByCondition(CustomerQuery customerQuery);

    PageInfo<Customer> selectCustomerPoolByCondition(CustomerQuery customerQuery);

    PageInfo<Customer> selectFailCustomerByCondition(CustomerQuery customerQuery);

    PageInfo<Customer> selectFormalCustomerByCondition(CustomerQuery customerQuery);

    PageInfo<Customer> selectLoseCustomerByCondition(CustomerQuery customerQuery);

    //修改客户状态
    void updateCustomerStatus(Long customerId, Integer status);

    void editSellerId(Long customerId, Long newSellerId);
}
